A programmable controller (PC) is a solid state device designed to perform logical decision making for control applications in an industrial environment. The PC performs logic operations as well as simulating analog controllers. Because the PC is a digital device, the information which is processed is normally stored in a binary form in solid state memories. Typically two types of memory are provided in a PC. These being read only memory (ROM) and random access memory (RAM). The information contained in the ROM is information that is required for the internal operation of the PC after it is initially energized. This information includes the housekeeping chores such as initialization routines, routines for checking the status of the memory, as well as checking the status of the input and output devices. This is information which is essential for the operation of the PC and is independent of any user program that is later entered into the PC for the controlling of input and output devices. Because the information written into the ROM is retained when the ROM is deenergized, this device is the preferred device for retaining the housekeeping routines within the programmable controller.
With RAM, data can be read from as well as written into the device. The RAM of a PC can be thought of as being logically partitioned into various segments--one being the dynamic portion of RAM, the other the static portion of RAM. Variable data is kept in the dynamic portion of RAM while infrequently changed data is kept in the static portion of RAM. Typically, the static portion of RAM is used for storing the user program that sets forth the decision-making criteria that are used to control the output devices. A programming panel, connected to the programmable controller, is used to enter the user program into memory. After the user program has been entered into RAM, the states of various input and output devices connected to the PC are periodically sampled and updated. During the sampling process, information concerning the real world status of the input devices and output devices is written into the dynamic portion of RAM. During solving of the user program, information representing the status of the input and output devices and the portion of the user program undergoing solution are jointly sent to the processor or in the PC. At the processor, a solution is derived concerning the status of various output devices as a function of the user program and the real world status of the input devices that was obtained from the RAM. As each line of the user program is processed, the solution thereto is stored in RAM. When the entire program has been processed, the stored solution is used to update the status of the output devices. Because solid state devices are used, one scan or pass which includes reading the status of the inputs and outputs, solving the user program and updating the outputs can take place within a time period of less than a second. This time period is also known as the scan time of the PC.
The user program is the map that guides the PC and without which the PC could not function. Because the user program can be quite lengthy and time consuming to enter into the memory, an important feature of any PC has always been the availability of non-volatile memory. In the past magnetic core memory or battery backed-up CMOS RAM were typically used. The drawbacks with these approaches is that magnetic core memory is expensive in comparison to other types of memory devices while the batteries used to power the CMOS RAM require maintenance. Another means of providing non-volatile memory would be to place the user program into ROM. However ROM devices usually cannot be directly programmed while installed in a circuit. This is because they require higher level voltages for programming than are normally found in a typical programmable controller. A further approach uses a hybrid device having the read/write capabilities of RAM while also having the non-volatility of ROM. This device is known as an electrically erasable programmable read only memories (EEPROM). Memory devices constructed using this technology are able to be erased and reprogrammed while still in a circuit. The drawbacks with this device is that they could be programmed only a limited number of times. Also it takes several milliseconds to write data into an EEPROM device. In comparison a CMOS RAM requires only fractions of a microsecond for data to be written into them. If EEPROMs were used as replacements for CMOS RAM, they would severely degrade the scan times of the programmable controller due to the length of time required to write data into the EEPROMs. Also, because the EEPROM can be written to only a limited number of times, the lifetime of the PC would also be adversely affected. It would be advantageous therefore to have a low cost, maintenance free form of non-volatile memory that overcomes the technical disadvantages of using EEPROM.